macos: ensure element is part of queue
authorChristian Hergert <chergert@redhat.com>
Thu, 3 Dec 2020 00:53:05 +0000 (16:53 -0800)
committerChristian Hergert <chergert@redhat.com>
Thu, 3 Dec 2020 03:44:02 +0000 (19:44 -0800)
We don't want to risk decrementing length field unless this is actually
part of the queue.

gdk/macos/gdkmacosdisplay.c

index 37532fd07953398f8f80be610ab4dd7f43803e7f..be2d111c59fb71b3368336948faaeec91961e4aa 100644 (file)
@@ -477,7 +477,8 @@ _gdk_macos_display_surface_removed (GdkMacosDisplay *self,
   if (self->keyboard_surface == surface)
     _gdk_macos_display_surface_resigned_key (self, surface);
 
-  g_queue_unlink (&self->sorted_surfaces, &surface->sorted);
+  if (queue_contains (&self->sorted_surfaces, &surface->sorted))
+    g_queue_unlink (&self->sorted_surfaces, &surface->sorted);
 
   if (queue_contains (&self->main_surfaces, &surface->main))
     _gdk_macos_display_surface_resigned_main (self, surface);